// 自定义中间件  做日志打印
// 需要导出一个函数
import log4js from 'log4js'  // 相当于java里的log4j
// 打印日志,控制台打印  也要输出文件
log4js.configure({
    appenders: {
        out: {                   // 控制台输出
            type: 'stdout',
            layout: {
                type: 'colored'  // 样式，带点颜色的
            }
        },
        file: {
            filename: 'logs/server.log',
            type: 'file'
        }
    },
    categories: {        // 类别
        default:{
            appenders: ["out", "file"],
            level: "debug"
        }
    }
})

const logger = log4js.getLogger("default")  // 初始化一个日志方法

/**
 * 
 * @param {*} req 接收前端传的数据
 * @param {*} res 返回给前端的数据
 * @param {*} next 是否执行下一个中间件，不如不写就会一直卡着
 */
const LoggerMiddleware = (req, res, next) => {
    // 每一个请求都会经过中间件，所以可以记录每一次的信息
    logger.debug(`[${req.method}] ${req.url}`)
    next()
}

export default LoggerMiddleware